import Vue from 'vue'
import Toast from './index.vue'

// 使用Vue.exted创建一个Toast的构造器
// ToastContructo是Toast的一个子类
const ToastContructor = Vue.extend(Toast)

// 接收参数实例化一个Toast，并挂载toast dom
// 插件接收参数与组件不同，通过构造函数接收并实例化对象
const toast = function(options = {}) {
  const toastInstance = new ToastContructor({
    data: options
    // $mount是vue实例的API，这个vue实例时从Toast继承来的
    // 手动挂载，挂载在文档之外，与#app是同级别的一个DOM
  }).$mount()

  document.body.appendChild(toastInstance.$el)

  return toastInstance
}

export default toast